/**

 @Name：layuiAdmin 用户管理 管理员管理 角色管理
 @Author：star1029
 @Site：http://www.layui.com/admin/
 @License：LPPL
    
 */


layui.define(['table', 'form','transfer'], function (exports) {
  var $ = layui.$
    , admin = layui.admin
    , view = layui.view
    , table = layui.table
    , form = layui.form;
    var transfer=layui.transfer;

  //用户管理
  table.render({
    elem: '#LAY-user-manage'
    , url: 'http://stuapi.ysdjypt.com/api/GetUsersLayUI' //模拟接口
    , method: 'post'
    , where: { token: 'ff8437b3-a8af-436f-8ba6-15adfb088bfe' }
    , cols: [[
      { type: 'checkbox', fixed: 'left' }
      , { field: 'Id', width: 100, title: '用户编号' }
      , { field: 'LoginName', title: '用户名' }
      , {
        field: 'IsLockout', title: '是否锁定',
        templet: function (d) {
          if (d.isToday == "是") {
            return '<input type="checkbox" param="' + d.LoginName + '" lay-filter="today"  name="IsLockout" lay-skin="switch" checked lay-text="锁定|解锁">';
          } else {
            return '<input type="checkbox" param="' + d.LoginName + '" lay-filter="today"  name="IsLockout" lay-skin="switch" lay-text="锁定|解锁">';

          }
        }
      }
      , { field: 'LastLoginTime', title: '最后登录时间' }
      , { field: 'CreateTime', title: '创建时间' }
      , { field: 'PsdWrongTime', title: '秘密错误次数' }
      , { field: 'LockTime', title: '用户锁定时间' }
      , { field: 'ProtectEMail', title: '邮箱' }
      , { field: 'ProtectMTel', title: '手机号码' }
      , { field: 'RowNum', title: '行号' }
      , { title: '操作', width: 300, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser' }
    ]]
    , page: true
    , limit: 30
    , height: 'full-320'
    , text: '对不起，加载出现异常！'
  });
  //监听锁定解锁开关事件
  form.on('switch(today)', function (data) {
    console.log(data.elem);//获得checked原始DOM对象
    console.log(data.elem.checked);//开关是否开启
    console.log(data.value);//开关的value值，也可通过data.elem.value得到
    console.log(data.othis);//得到美化后的DOM对象
    if (data.elem.checked) {
      $.post(
        "http://stuapi.ysdjypt.com/api/UnLockUser",
        {
          un: $(data.elem).attr("param"),
          token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
        },
        function (res) {
          layer.msg("解锁" + res.success);
        },
        'json');

    } else {
      $.post(
        "http://stuapi.ysdjypt.com/api/LockUser",
        {
          un: $(data.elem).attr("param"),
          token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
        },
        function (res) {
          layer.msg("锁定" + res.success);
        },
        'json');
    }
  });
  //监听工具条
  table.on('tool(LAY-user-manage)', function (obj) {
    var data = obj.data;
    var transferid=data.Id;
    if (obj.event === 'del') {
      layer.prompt({
        formType: 1
        , title: '敏感操作，请验证口令'
      }, function (value, index) {
        layer.close(index);

        layer.confirm('真的删除行么', function (index) {
          /*    $.post(
               "http://stuapi.ysdjypt.com/api/DeleteUser",
              {
                uid:data.Id,
                token:"ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
              },
              function(res){
                layer.msg(res.success);
              },
              'json'); */
          $.ajax({
            type: "post",
            url: "http://stuapi.ysdjypt.com/api/DeleteUser",
            data: {
              uid: data.Id,
              token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
            },
            success: function (res) {
              layer.msg(res);
            }
          });


          table.reload('LAY-user-manage');
          layer.msg('已删除');

          /* 
                     layui.table.reload('LAY-user-manage'); //重载表格
                     layer.close(index); //执行关闭   */
        });
      });
    }else if (obj.event === 'reset') {
        layer.confirm('是否重置密码', function (index) {
          $.ajax({
            type: "post",
            url: "http://stuapi.ysdjypt.com/api/ResetPassword",
            data: {
              un: data.LoginName,
              token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
            },
            success: function (res) {
              layer.msg(res);
            }
          });
        });
      
      } else if(obj.event === 'sz'){
        admin.popup({
          title: '设置'
          , area: ['600px', '500px']
          , id: 'LAY-popup-user-sz'
          , success: function (layero, index) {
            view(this.id).render('user/user/transfer', data).done(function () {
               //从后台获取数据
      $.post(
        "http://stuapi.ysdjypt.com/api/GetRolesByUserIdLayUI"
        , {
          uid: data.Id
          , token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
        }, function (res) {
          console.log(res.data);
          var valueArr = new Array;//右侧列表数据集合
          for (var i = 0; i < res.data.length; i++) {
            // console.log(res.data[i].Id);
            valueArr.push(res.data[i].Id);
          }
          //console.log(valueArr);
          $.post(
            "http://stuapi.ysdjypt.com/api/GetRolesAll"
            , {
              token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
            }, function (res) {
              console.log(res);
              //渲染
              transfer.render({
                elem: '#test1'  //绑定元素
                , title: ["系统角色", "拥有角色"]
                , data: res
                , value: valueArr//右侧初始数据
                , id: 'demo1' //定义索引
                , parseData: function (res) {
                  return {
                    "value": res.Id //数据值
                    , "title": res.Name //数据标题
                    , "disabled": res.disabled  //是否禁用
                    , "checked": res.checked //是否选中
                  }
                }, onchange: function (data, index) {
                  console.log(data); //得到当前被穿梭的数据
                  console.log(index); //如果数据来自左边，index 为 0，否则为 1
                  if(index==0){//左传到右，分配
                    for(var i=0;i<data.length;i++){
                      $.post(
                        "http://stuapi.ysdjypt.com/api/AddUserToRole"
                        ,{
                          uId: transferid
                          ,rId:data[i].value
                          ,token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
      
                        },function(res){
      
                        },'json'
      
                      );
  
                      
                    }
                  }else{//右传到左，移除
                      for(var i=0;i<data.length;i++){
                        $.post(
                          "http://stuapi.ysdjypt.com/api/RemoveUserFromRole"
                          ,{
                            uId: transferid
                            ,rId:data[i].value
                            ,token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
        
                          },function(res){
        
                          },'json'
        
                        );
    
                        
                      }

                    }
                
                }
              });
            }, 'json');



        }, 'json');
  
              
              });
            }
          }
        );
  
  
      }else if (obj.event === 'edit') {
      admin.popup({
        title: '编辑用户'
        , area: ['500px', '450px']
        , id: 'LAY-popup-user-add'
        , success: function (layero, index) {
          view(this.id).render('user/user/userform1', data).done(function () {
            form.render(null, 'layuiadmin-form-useradmin1');

            //监听提交
            form.on('submit(LAY-user-front-submit)', function (data) {
              var field = data.field; //获取提交的字段

              //提交 Ajax 成功后，关闭当前弹层并重载表格
              $.ajax({
                type: "post",
                url: "http://stuapi.ysdjypt.com/api/UpdateUser",
                data: {
                  email: $("#email").val(), //电子邮箱
                  mtel: $("#mtel").val(),//电话
                  loginName: $("#loginName").val(),//登录名(登录名是唯一的像主键一样作为修改的where条件)
                  token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
                },
                success: function (res) {
                  layer.msg(res);
                }
              });
              layui.table.reload('LAY-user-manage'); //重载表格
              layer.close(index); //执行关闭 
            });
          });
        }
      });
    }
  });

  //管理员管理
  table.render({
    elem: '#LAY-user-back-manage'
    , url: './json/useradmin/mangadmin.js' //模拟接口
    , cols: [[
      { type: 'checkbox', fixed: 'left' }
      , { field: 'id', width: 80, title: 'ID', sort: true }
      , { field: 'loginname', title: '登录名' }
      , { field: 'telphone', title: '手机' }
      , { field: 'email', title: '邮箱' }
      , { field: 'role', title: '角色' }
      , { field: 'jointime', title: '加入时间', sort: true }
      , { field: 'check', title: '审核状态', templet: '#buttonTpl', minWidth: 80, align: 'center' }
      , { title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin' }
    ]]
    , text: '对不起，加载出现异常！'
  });

  //监听工具条
  table.on('tool(LAY-user-back-manage)', function (obj) {
    var data = obj.data;
    if (obj.event === 'del') {
      layer.prompt({
        formType: 1
        , title: '敏感操作，请验证口令'
      }, function (value, index) {
        layer.close(index);
        layer.confirm('确定删除此管理员？', function (index) {
          console.log(obj)
          obj.del();
          layer.close(index);
        });
      });
    } else if (obj.event === 'edit') {
      admin.popup({
        title: '编辑管理员'
        , area: ['420px', '450px']
        , id: 'LAY-popup-user-add'
        , success: function (layero, index) {
          view(this.id).render('user/administrators/adminform', data).done(function () {
            form.render(null, 'layuiadmin-form-admin');

            //监听提交
            form.on('submit(LAY-user-back-submit)', function (data) {
              var field = data.field; //获取提交的字段
              $.ajax({
                type: "post",
                url: "http://stuapi.ysdjypt.com/api/UpdateRole",
                data: {
                  name: $("#Name").val(),
                  roleId: $("#roleId").val(),

                  token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥

                }, success: function (res) {
                  layer.msg(res);
                }
              });
              //提交 Ajax 成功后，关闭当前弹层并重载表格
              //$.ajax({});
              layui.table.reload('LAY-user-back-manage'); //重载表格
              layer.close(index); //执行关闭 
            });
          });
        }
      });
    }
  });

  //角色管理
  table.render({
    elem: '#LAY-user-back-role'
    , url: 'http://stuapi.ysdjypt.com/api/GetRolesLayUI' //模拟接口
    , method: 'post'
    , where: { token: 'ff8437b3-a8af-436f-8ba6-15adfb088bfe' }
    , cols: [[
      { type: 'checkbox', fixed: 'left' }
      , { field: 'Id', title: '角色id', sort: true }
      , { field: 'Name', title: '角色名称' }

      , { title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin' }
    ]]
    , text: '对不起，加载出现异常！'
  });

  //监听工具条
  table.on('tool(LAY-user-back-role)', function (obj) {
    var data = obj.data;
    if (obj.event === 'del') {
      layer.confirm('确定删除此角色？', function (index) {
        $.ajax({
          type: "post",
          url: "http://stuapi.ysdjypt.com/api/DeleteRole",
          data: {
            roleId: data.Id,
            token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
          },
          success: function (res) {
            layer.msg(res);
          }
        });


        layui.table.reload('LAY-user-back-role'); //重载表格
        layer.close(index); //执行关闭 
      });
    } else if (obj.event === 'edit') {
      admin.popup({
        title: '修改新角色'
        , area: ['500px', '480px']
        , id: 'LAY-popup-user-add'
        , success: function (layero, index) {
          view(this.id).render('user/administrators/roleform', data).done(function () {
            form.render(null, 'layuiadmin-form-role');

            //监听提交
            form.on('submit(LAY-user-role-submit)', function (data) {
              var field = data.field; //获取提交的字段

              //提交 Ajax 成功后，关闭当前弹层并重载表格
              //$.ajax({});
              $.ajax({
                type: "post",
                url: "http://stuapi.ysdjypt.com/api/UpdateRole",
                data: {
                  name: $("#Name").val(), //电子邮箱
                  roleId: $("#Id").val(),//电话

                  token: "ff8437b3-a8af-436f-8ba6-15adfb088bfe"//数据库密钥
                },
                success: function (res) {
                  layer.msg(res);
                }
              });
              layui.table.reload('LAY-user-back-role'); //重载表格
              layer.close(index); //执行关闭 
            });
          });
        }
      });
    }
  });

  exports('useradmin', {})
});